#include<iostream>
using namespace std;
/*
程序运行前：
全局区：全局变量和静态变量存放在此
全局区还包含了常量区，字符串常量和其他常量也存放在此
该区域的数据在程序结束后由操作系统释放
*/
int g_a=10;//全局变量
int g_b=10;

const int c_g_a=10;
int main(){
    //全局区
    //创建普通局部变量
    int a=10;//局部变量不再全局区
    int b=10;
    cout<<"局部变量a的地址为："<<(long long)&a<<endl;
    cout<<"局部变量b的地址为："<<(long long)&b<<endl;

    cout<<"全局变量g_a的地址为："<<(long long)&g_a<<endl;
    cout<<"全局变量g_b的地址为："<<(long long)&g_b<<endl;
    
    //静态变量,在普通变量前面加static，属于静态变量
    static int s_a=10;
    static int s_b=10;
    cout<<"静态变量s_a的地址为："<<(long long)&s_a<<endl;
    cout<<"静态变量s_b的地址为："<<(long long)&s_b<<endl;
    
    //常量
    //字符串常量
    cout<<"字符串常量的地址为："<<(long long)&"hello"<<endl;
    
    //const修饰的变量
    //const修饰的全局变量，const修饰的局部变量
    cout<<"全局常量c_g_a的地址为："<<(long long)&c_g_a<<endl;
    
    const int c_l_a=10;//局部常量不在全局区
    cout<<"局部常量c_l_a的地址为："<<(long long)&c_l_a<<endl;
    return 0;
}